package com.base.controller;

import com.base.po.voip.Film;
import com.base.service.*;
import com.base.utils.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 电影电视管理服务端
 *
 * @author f
 */
@Controller
@RequestMapping("/admin")
public class index_Film {

    @Autowired
    private FilmService filmService; // 电影信息
    @Autowired
    private FilmAdService filmAdService;
    @Autowired
    private FilmAgeService filmAgeService;

    /**
     * 电影信息首页
     *
     * @param request       参数
     * @param currentPageNo 当前页
     * @param filmname      电影名称
     * @param username      代理商名称
     * @return ModelAndView
     * @throws Exception
     */
    @RequestMapping("/filmIndex")
    public ModelAndView filmIndex(HttpServletRequest request, Integer currentPageNo, String filmname, String username) throws Exception {
        String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
        if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        // 设置分页 获取内容
        Page page = new Page(); // 实例化分页
        page.setCurrentPageNo(currentPageNo); // 设置当前页
        List<Film> film = null; // 商圈内容集合
        // 判断登录权限
        switch ((int) request.getSession().getAttribute("adminUsergrade")) {
            case 0: // ADMIN用户显示 全部
                userid = null;
            case 1: // 代理商用户显示 本代理商和本代理商下的代理商以及商家下的用户
                page.setRecordTotal(filmService.countByAll(userid, filmname, username, null, null, 1)); // 设置总条数
                film = filmService.selectByAll(page, userid, filmname, username, null, null, 1); // 赋值集合内容
                break;
        }
        map.put("film", film);
        map.put("filmname", filmname); // 电影名称
        map.put("username", username); // 代理商名称
        map.put("pages", page); // 分页
        return new ModelAndView("jsp/index_Film", map);
    }

    /**
     * 电视信息首页
     *
     * @param request       参数
     * @param currentPageNo 当前页
     * @param filmname      电影名称
     * @param username      代理商名称
     * @return ModelAndView
     * @throws Exception
     */
    @RequestMapping("/tVIndex")
    public ModelAndView tVIndex(HttpServletRequest request, Integer currentPageNo, String filmname, String username) throws Exception {
        String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
        if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        // 设置分页 获取内容
        Page page = new Page(); // 实例化分页
        page.setCurrentPageNo(currentPageNo); // 设置当前页
        List<Film> film = null; // 商圈内容集合
        // 判断登录权限
        switch ((int) request.getSession().getAttribute("adminUsergrade")) {
            case 0: // ADMIN用户显示 全部
                userid = null;
            case 1: // 代理商用户显示 本代理商和本代理商下的代理商以及商家下的用户
                page.setRecordTotal(filmService.countByAll(userid, filmname, username, null, null, 2)); // 设置总条数
                film = filmService.selectByAll(page, userid, filmname, username, null, null, 2); // 赋值集合内容
                break;
        }
        map.put("film", film);
        map.put("filmname", filmname); // 电影名称
        map.put("username", username); // 代理商名称
        map.put("pages", page); // 分页
        return new ModelAndView("jsp/index_TV", map);
    }

    // 跳转添加信息
    @RequestMapping("/addFilm")
    public ModelAndView addFilm(HttpServletRequest request, Integer type) throws Exception {
        String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
        if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        map.put("type", type);
        map.put("ad", filmAdService.selectByAll(userid, 1));
        map.put("age", filmAgeService.selectByAll(null, userid));
        return new ModelAndView("jsp/add_Film", map);
    }

    // 跳转修改信息
    @RequestMapping("/updateFilm")
    public ModelAndView updateFilm(HttpServletRequest request, String id, Integer currentPageNo, String filmname, String username, Integer type) throws Exception {
        String userid = (String) request.getSession().getAttribute("adminUserId"); // 登录的用户ID
        if (userid == null) return new ModelAndView("jsp/loginCheck"); // 未登录
        Map<String, Object> map = new HashMap<>(); // 存储数据对象
        map.put("type", type);
        map.put("film", filmService.selectByPrimaryKey(id)); // 电影对象
        map.put("currentPageNo", currentPageNo); // 当前页
        map.put("filmname", filmname); // 电影名称
        map.put("username", username); // 代理商名称
        map.put("ad", filmAdService.selectByAll(userid, 1));
        map.put("age", filmAgeService.selectByAll(null, userid));
        return new ModelAndView("jsp/update_Film", map);
    }
}
